package com.googlecode.continuity.plugin.svnbrowser.client;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * ReadSVNRPCAsync
 *
 * @author Peter Schmitt <aragos@aragos.de>
 */
public interface ReadSVNRPCAsync {

  void connect(String url, String username, String password, AsyncCallback async);

  /**
   * @param directoryPath
   * @throws com.googlecode.continuity.plugin.svnbrowser.client.ReadSVNException
   *
   */
  void getDirectoryContents(SVNRepositoryHandle handle, String directoryPath, AsyncCallback async);

  /**
   * @param directoryPath
   * @param revision
   * @throws com.googlecode.continuity.plugin.svnbrowser.client.ReadSVNException
   *
   */
  void getDirectoryContents(SVNRepositoryHandle handle, String directoryPath, long revision, AsyncCallback async);

  /**
   * @param filePath
   * @throws com.googlecode.continuity.plugin.svnbrowser.client.ReadSVNException
   *
   */
  void getTextFileContents(SVNRepositoryHandle handle, String filePath, AsyncCallback async);

  /**
   * @param filePath
   * @param revision
   * @throws com.googlecode.continuity.plugin.svnbrowser.client.ReadSVNException
   *
   */
  void getTextFileContents(SVNRepositoryHandle handle, String filePath, long revision, AsyncCallback async);
}
